package cn.com.dhcc.app.pub.core.api;

import java.util.List;

import cn.com.dhcc.app.core.exception.ServiceException;

/**
 * 数据交换系列接口
 * 
 * @日期 2014-11-25 上午10:33:01
 * @作者  高强
 */
/*@WebService*/
public interface DataExchService {
	public String proccess(String xml);

	/**
	 * 常规数据交换
	 * @param posthead
	 * @param authCode 授权码
	 * @param metadata 数据自描述信息
	 * @param data
	 * 
	 * @return
	 */
	public String send(String posthead,String authCode, String metadata,String data);
	
	
	/**
	 * 非结构化数据交换
	 * @param postname 头文件文件名称  xxxxx.xml
	 * @param authCode 授权码
	 * @param metadata 数据自描述信息
	 * 
	 * @param fromsys  发送系统
	 * @return
	 */
	public String sendFile(String postname,String authCode,String metadata,String fromAdapter,List<String> fileItems);
	
	/**
	 * 通过节点编码返回交换关系节点列表
	 * @param nodeCode : 节点编码
	 * @return
	 * @throws ServiceException
	 */
	public String getRelNodeList(String nodeCode) throws ServiceException;
	
	
	
	
/**
 * 验证适配器是否绑定了webservice地址
 * @param nodeCode 节点编码
 * @param adapterCode 适配器编码
 * @return
 * @throws ServiceException
 */
	public boolean adapterIsBind(String nodeCode,String adapterCode) throws ServiceException;
	
	

	/**
	 * 登陆验证接口
	 * @param adapterCode 适配器编码
	 * @param userName 用户名
	 * @param userPassword 密码
	 * @return 用户登陆信息
	 * 返回值XML字符串
	 * <login>
	 *     <status></status>状态码 0.请求错误 1.登陆失败 2.登陆成功
	 *     <msg></msg>信息提示
	 *     <loginInfo>  用户信息
	 *        <sysCode></sysCode> 系统编码
	 *        <sysName></sysName> 系统名称
	 *     </loginInfo>
	 * </login>
	 * 
	 * 
	 */
	public String login(String authCode,String userName,String userPassword);	
	
	/**
	 * 获取节点信息
	 * @param pCode 可为空或为父节点编码
	 * @return
	 * @throws ServiceException
	 */
	public String getNodeInfoList(String pCode) throws ServiceException;
	
	

	/**
	 * 数据监控路由
	 * @param monitorKey 要查询的关键的参数
	 * <monitorKey>
	 *    <orderId></orderId> 订单号  如果不填写就查询所有的
	 *    <groupId></groupId> 组订单号 如果不填写就查找所有的
	 *    <type></type>   数据类型   0：CM_DATA  1:SQL_DATA  2.FILE_DATA
	 * </monitorKey>
	 * 
	 *
	 * 
	 * @return 监控路由
	 * 
	 * <monitorLogs>
	 *   <monitorLog>
	 *  
	 *   </monitorLog>
	 * </monitorLogs>
	 */
	public String orderStatusSearch(String groupId,String orderId,String type);
	/**
	 * 获取ftp登陆信息，如ip端口
	 * @param adapterCode
	 * @param authCode
	 * @return
	 */
	public String getFtpInfo(String adapterCode,String authCode);
	
	
	/**
	 * 获取ftp登陆信息，如ip端口
	 * @param adapterCode
	 * @param authCode
	 * @return
	 */
	public String getRmiInfo();
	
	/**
	 * 获取ftp登陆信息，如ip端口
	 * @param adapterCode
	 * @param authCode
	 * @return
	 */
	public String getFtpInfo();
}
